<?php

namespace action\user;

use \cass\formulaire AS form;

class motdepasseAction extends \cass\Action {

    /**
     * Méthode de changement de profil
     */
    public function execute() {
	// Si connecté, pas de raison de vouloir récupérer son mot de passe
	$this->redirectIf($this->getSession()->isAuthenticated(), '@homepage');

	// Infos de la page
	$this->setTitle('Difficultés pour se connecter ?');

	// Formulaire de récupération
	$formulaire = new form\Formulaire('Récupération de mot de passe');
	$formulaire->setButtons('submit', 'Envoyer l\'e-mail');
	$formulaire->append(new form\Input('Adresse e-mail', '', true, 'Format mon.adresse@domaine.ntd'));

	// Vérifications
	if ($formulaire->isPosted()) {
	    // Format de l'adresse e-mail et libre ?
	    if (!$formulaire->{'Adresse e-mail'}->isError()) {
		if (!preg_match(\cass\Data::regex('email'), $formulaire->getValue('Adresse e-mail'))) {
		    $formulaire->{'Adresse e-mail'}->setError('Format attendu : mon.adresse@domaine.ntd');
		}
	    }
	}

	// Enregistrements
	if ($formulaire->isPostedWithoutError()) {
	    $user = \entities\User::getByIdentifiantOrEmail($formulaire->getValue('Adresse e-mail'));

	    // Le user existe, envoi de l'email
	    if ($user !== false) {
		echo 'email sent (no)';
	    }

	    $formulaire->setConfirm('Un e-mail a été envoyé à ' . $formulaire->getValue('Adresse e-mail') . '. Suivez les instructions qu\'il contient.');
	}

	// Assignations
	$this->formulaire = $formulaire;
    }
}